#define  _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
//scanf -数据从键盘读取到内存
//printf -从内存打印数据到屏幕
//库函数 -C语言编译器提供现成的函数，可以直接使用


//%c - 字符
// %s - 字符串
// %p - 地址的打印
//int main()
//{
//	//int a = 0;
//	//scanf("%d", &a);
//	//printf("%d", a);
//
//
//	char ch = 0;
//	scanf("%c", &ch);
//	printf("%c", ch);
//	return 0;
//}


//作用域（scope）是程序设计概念，通常来说，一段程序代码中所用到的名字并不总是有效/可用的
//而限定这个名字的可用性的代码范围就是这个名字的作用域。
//int main()
//{
//	{
//		int a = 100;
//		printf("%d", a);
//	}
//	return 0;
//}

//全局变量的作用域是整个工程。
//int a = 2023;
//
//void test()
//{
//	printf("2--->%d", a);
//}
//int main()
//{
//	printf("1--->%d\n", a);
//	test();
//}


//声明外部变量                不要包含.c文件，一般只包含头文件   尽量避免使用全局变量
//extern int g_val;
//
//int main()
//{
//	printf("%d\n", g_val);
//
//	return 0;
//}                  

//常量
//C语言中的常量分为以下以下几种：
//字面常量 - 3,a   可以直接写出来
//const 修饰的常变量   常属性 不可被修改的量

//#define的标识符---常量 
//#define MAX 100


//const float pai = 3.14f;   //这里的pai是const修饰的常变量
//pai = 5.14;//是不能直接修改的！    pai具有常属性，但本质还是变量

//const int a=3;

//数组
//int arr[n];         n应该具有常量值

//枚举常量
//枚举    --   一一列举      性别：男 女 保密    血型：
// 

//enum Sex
//{
//	//列出枚举类型enum Sex可能取值
//	MALE=4,
//	FEMALE,
//	SECRET
//
//};      //括号中的MALE,FEMALE,SECRET是枚举常量
//
//int main()
//{
//	printf("%d\n", MALE);
//	printf("%d\n", FEMALE);
//	printf("%d\n", SECRET);
//
//	return 0;
//}

//int main()
//{
//	char arr1[] = "bit";
//	char arr2[] = { 'b', 'i', 't' };
//	char arr3[] = { 'b', 'i', 't', '\0' };   //字符串的结束标志
//	printf("%s\n", arr1);
//	printf("%s\n", arr2);
//	printf("%s\n", arr3);
//
//	return 0;
//}

//转义字符
//int main()
//{
//	printf("c:\\code\\test.c\\n\n");
//	printf("%c",'\'');
//	printf("\"\'\"");
//	return 0;
//}
//int main()
//{
//	printf("%d\n", strlen("abcdef"));
//	// \62被解析成一个转义字符
//	printf("%d\n", strlen("c:\test\628\test.c"));
//	printf("%c",'\130');
//	return 0;
//}
// 
// 
// 修饰局部变量
//void test()
//{
//	int i = 0;
//	i++;
//	printf("%d ", i);
//}
//int main()
//{
//	int i = 0;
//	for (i = 0; i < 10; i++)
//	{
//		test();
//	}
//	return 0;
//}

void test()
{
	static int i = 0;           //static修饰局部变量   让静态变量出了作用域依旧存在，指导程序结束，生命周期结束
	i++;
	printf("%d ", i);
}
int main()
{
	int i = 0;
	for (i = 0; i < 10; i++)
	{
		test();
	}
	return 0;
}